package cn.stylefeng.guns.modular.production.productionOrder.service;

import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.guns.modular.production.productionOrder.entity.Order;
import cn.stylefeng.guns.modular.production.productionOrder.pojo.request.OrderRequest;
import com.baomidou.mybatisplus.extension.service.IService;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 生产订单表服务类
 *
 * @author panl
 * @since 2023/12/15 11:29
 */
public interface OrderService extends IService<Order> {

    /**
     * 新增生产订单表
     *
     * @param orderRequest 请求参数
     * @author panl
     * @since 2023/12/15 11:29
     */
    void add(OrderRequest orderRequest);

    /**
     * 删除生产订单表
     *
     * @param orderRequest 请求参数
     * @author panl
     * @since 2023/12/15 11:29
     */
    void del(OrderRequest orderRequest);

    /**
     * 批量删除生产订单表
     *
     * @param orderRequest 请求参数
     * @author panl
     * @since 2023/12/15 11:29
     */
    void batchDelete(OrderRequest orderRequest);

    /**
     * 编辑生产订单表
     *
     * @param orderRequest 请求参数
     * @author panl
     * @since 2023/12/15 11:29
     */
    void edit(OrderRequest orderRequest);

    /**
     * 查询详情生产订单表
     *
     * @param orderRequest 请求参数
     * @author panl
     * @since 2023/12/15 11:29
     */
    Order detail(OrderRequest orderRequest);

    /**
     * 获取生产订单表列表
     *
     * @param orderRequest         请求参数
     * @return List<Order>  返回结果
     * @author panl
     * @since 2023/12/15 11:29
     */
    List<Order> findList(OrderRequest orderRequest) throws ParseException;

    /**
     * 获取生产订单表分页列表
     *
     * @param orderRequest                请求参数
     * @return PageResult<Order>   返回结果
     * @author panl
     * @since 2023/12/15 11:29
     */
    PageResult<Order> findPage(OrderRequest orderRequest) throws ParseException;

    void close(OrderRequest orderRequest);

    void batchClose(OrderRequest orderRequest);

    Map material(OrderRequest orderRequest);
}
